package math;

/**
 * 给你两个正整数 n 和 m 。
 * 现定义两个整数 num1 和 num2 ，如下所示：
 * num1：范围 [1, n] 内所有 无法被 m 整除 的整数之和。
 * num2：范围 [1, n] 内所有 能够被 m 整除 的整数之和。
 * 返回整数 num1 - num2 。
 * <p>
 * 示例 1：
 * 输入：n = 10, m = 3
 * 输出：19
 * 解释：在这个示例中：
 * - 范围 [1, 10] 内无法被 3 整除的整数为 [1,2,4,5,7,8,10] ，num1 = 这些整数之和 = 37 。
 * - 范围 [1, 10] 内能够被 3 整除的整数为 [3,6,9] ，num2 = 这些整数之和 = 18 。
 * 返回 37 - 18 = 19 作为答案。
 * <p>
 * 示例 2：
 * 输入：n = 5, m = 6
 * 输出：15
 * 解释：在这个示例中：
 * - 范围 [1, 5] 内无法被 6 整除的整数为 [1,2,3,4,5] ，num1 = 这些整数之和 =  15 。
 * - 范围 [1, 5] 内能够被 6 整除的整数为 [] ，num2 = 这些整数之和 = 0 。
 * 返回 15 - 0 = 15 作为答案。
 * <p>
 * 示例 3：
 * 输入：n = 5, m = 1
 * 输出：-15
 * 解释：在这个示例中：
 * - 范围 [1, 5] 内无法被 1 整除的整数为 [] ，num1 = 这些整数之和 = 0 。
 * - 范围 [1, 5] 内能够被 1 整除的整数为 [1,2,3,4,5] ，num2 = 这些整数之和 = 15 。
 * 返回 0 - 15 = -15 作为答案。
 *
 * @author Jisheng Huang
 * @version 20250527
 */
public class DifferenceOfSum_2894 {
    /**
     * return the sum of the number from 1 to n that is non-divisible by n minus the sum from 1 to n that is divisible
     * by m
     *
     * @param n the given end number
     * @param m the divisible number
     * @return the difference
     */
    public static int differenceOfSum(int n, int m) {
        int divisible = 0;
        int nondivisible = 0;

        for (int i = 1; i <= n; ++i) {
            if (i % m != 0) {
                nondivisible += i;
            } else {
                divisible += i;
            }
        }

        return nondivisible - divisible;
    }

    public static void main(String[] args) {
        System.out.println(differenceOfSum(10, 3));
        System.out.println(differenceOfSum(5, 6));
        System.out.println(differenceOfSum(5, 1));
    }
}
